﻿; 从字符串中获取可能的路径
getDocumentPathFromStr(strPath)
{
    ; 提取可能的文件路径
    RegExMatch(strPath, "(\w:\\.*\.[\w-]+)", s)
    if GDP_fileExist(s)
        return s
	
	; 按空格分割
	arr := StrSplit(strPath, A_Space)
	
	; 识别路径的开始和后面部分
	dPath =
	afterArr := []
	for i, v in arr
	{
		v := GDP_trimPath(v)
		if GDP_likePath(v)
		{
			dPath := GDP_trimPath(v)
			if GDP_fileExist(dPath)
				return dPath
		} else if (dPath) {
			afterArr.insert(v)
		}
	}
	
	; 连接后面部分，查看是否存在
	for i, v in afterArr
	{
		dPath := dPath " " v
		dPath := GDP_trimPath(dPath)
		if GDP_fileExist(dPath)
			return dPath
	}
}

GDP_trimPath(s)  ; 去除前后干扰符
{
    return Trim(s, " `t`n""")
}

GDP_fileExist(s)  ; 需要绝对路径
{
    return s && instr(s, "\") && FileExist(s)
}

GDP_likePath(s)
{
    return RegExMatch(s, "\w:\\.*")
}
